/***
 * API: Interfaz de Integracion hacia el sistema SUB. 
 * Copyright (c) 2012 Alcaldia de Medellin.
 * Subsecretaria de Tecnologia de Informacion. 
 * Todos los Derechos Reservados.
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 * 
 */
package defecto;

import java.io.IOException;
import java.io.InputStream;
import java.io.Serializable;
import java.net.URL;
import java.net.URLConnection;

/**
 * Clase que aplica el patron Data Access Object, para acceder al web service
 * publicado por accion social que incide en el uso del Bean
 * <code>SipodVO</code>.
 * 
 * @author Consult-Soft S.A.
 * @version 4.0 10/01/2012
 * @since 1.4
 */
public class ConectorHttp implements Serializable {
    // ------------------------------------------------------------------------
    // Constantes
    // ------------------------------------------------------------------------
    /**
     * Evita que haya problemas de versiones al enviar objetos serializados a
     * traves de la red o por llamadas RPC y RMI.
     */
    private static final long serialVersionUID = 1L;

    /**
     * El tipo de contenido que trae la respuesta, puede ser XML o HTML segun el
     * documento de respuesta que entrega el servidor
     */
    private final String CONTENT_TYPE = "text/html; charset=ISO-8859-1";

    // ------------------------------------------------------------------------
    // Constructores
    // ------------------------------------------------------------------------
    /**
     * Crea un connector http sin inicializar.
     */
    public ConectorHttp() {
    }

    // ------------------------------------------------------------------------
    // Metodos Publicos
    // ------------------------------------------------------------------------
    /**
     * Realiza una llamada con parametros SOAP, por un metodo POST al web
     * service, publicado en la url <code>URL_SERVER</code>.
     * 
     * @param mensajeSoap
     *            El mensaje de tipo XML con el request de tipo SOAP para el web
     *            service.
     * @return La interfaz de lectura para el mensaje u objeto retornado.
     * @throws IOException
     *             Cuando falla la ejecucion del metodo por problemas de
     *             aperturas de canales http o con los objetos de la llamada.
     */
    public InputStream metodoGet(String surl) throws IOException {
	InputStream in = null;
	try {
	    // Variables Locales
	    URL url = new URL(surl);
	    URLConnection conn = url.openConnection();
	    // Setea las propiedades de la conexion url, para el uso de mensajes
	    // SOAP
	    conn.setDoOutput(true);
	    conn.setRequestProperty("Content-Type", this.CONTENT_TYPE);
	    conn.connect();
	    in = conn.getInputStream();

	} catch (IOException e) {
	    throw (e);
	}
	return in;
    }// FIN MET0DO GET

}
